Image information, be it color, black or white, is commonly generated in a bitmap format where the bitmap comprises a plurality of gray level pixels, i.e. pixels that are defined by digital values, each value representing a gray level among a number of gray levels. Thus, in an 8 bit system, 256 levels of gray are present, where each level represents an increment of gray between black and white. In the case of color bitmaps, where three defining colors or separations each include 256 levels of information, there may be more than 16 million colors defined by a gray bitmap.
Usually, bitmaps in such a gray level format are unprintable by standard printers. Standard printers print in a limited number of levels, either a spot or a no spot in the binary case, or a limited number of levels associated with the spot, for example, four in the quaternary case. Accordingly, it is necessary to reduce the gray level image data to a limited number of levels so that it is printed. Besides gray level information derived by scanning, certain processing techniques such as those described, for example, in U.S. patent application Ser. No. 07/600,542 entitled "Method for Image Conversions With Error Diffusion", by R. Eschbach, produce gray level pixel values which require conversion to a limited set of "legal" or output values.
One standard method of converting gray level pixel image data to binary level pixel image data is through the use of dithering or halftoning processes. In such arrangements, over a given area having a number of gray pixels therein, each pixel of an array of gray level pixels within the area is compared to one of a set of preselected thresholds (the halftone cell). The effect of such an arrangement is that, for an area where the image is gray, some of the thresholds within the halftone cell will be exceeded, while others are not. In the binary case, the pixels or cell elements for which thresholds are exceeded are printed as white, while the remaining elements are allowed to remain black. The effect of the distribution of black and white over the cell is integrated by the human eye as gray. Dithering or halftoning presents problems, however, in that the amount of gray within an original image is not maintained over an area, i.e. the error arising from the difference between the threshold value and the actual gray level value at any particular cell is simply thrown away. This results in a loss of image information. In particular, dithering introduces coarse quantization artifacts which are visible in the image areas where the scene has little variation. This is also known as "banding".
Algorithms that convert gray images to binary or other number of level images attempting to preserve the local density exist, and include among them error diffusion, as taught, for example, in "An Adaptive Algorithm for Spatial Greyscale" by Floyd and Steinberg, Proceedings of the SID 17/2, 75-77 (1976) (hereinafter, "Floyd and Steinberg"). Another, more elaborate method would be the error diffusion techniques of U.S. patent application Ser. No. 07/396,272, entitled, "Edge Enhanced Error Diffusion Algorithm" by R. Eschbach and assigned to the same assignee as the present invention. Additional modifications to the error diffusion algorithm taught by Floyd and Steinberg have been proposed, e.g.: a different weighting matrix, as taught, for example, in "A Survey of Techniques for the Display of Continuous Tone Pictures on Bilevel Displays" by Jarvis et al., Computer Graphics and Images Processing, Vol. 5., pp. 13-40 (1976), and in "MECCA--A Multiple-Error Correction Computation Algorithm for Bi-Level Image Hardcopy Reproduction" by Stucki, IBM Res. Rep. RZ1060 (1981). Modifications of the error calculation and weight allocation have been taught, for example, in U.S. Pat. No. 4,924,322 to Kurosawa et. al., U.S. Pat. No. 4,339,774 to Temple, and U.S. Pat. No. 4,955,065, to Ulichney.
Error diffusion attempts to maintain gray by making the conversion from gray pixels to binary or other level pixels on pixel-by-pixel basis. The procedure examines each pixel with respect to a threshold, and the difference between the gray level pixel value and the output value is forwarded to a selected group or set of neighboring pixels, in accordance with a weighting scheme.
A problem noted with the use of the standard error diffusion algorithms is the production of large numbers of isolated pixels which are non-printable by many types of printers.
The introduction of a dot or dither pattern as a threshold for error diffusion was first suggested by Billotet-Hoffmann and Bryngdahl, Proceedings of the SID, Vol. 24/3, (1983), pp. 253-258. This was done to break up undesired patterns produced by the error diffusion algorithm.